﻿/*  
 *  IIS LogFile Analyser, Copyright (C) 2013. http://www.iis-analyser.com
 *  --
 *  This program is free software, provided "AS IS" WITHOUT ANY WARRANTY; without even the implied warranty of 
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
 * 
 *  File Author: Ian Quigley,    2013-02-23
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SQLite;

namespace DataStore
{
    [TableName("ComputerName")]
    public class ComputerNameRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "ComputerName"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new ComputerNameRecord();
        }
    }

    [TableName("Method")]
    public class MethodRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "Method"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new MethodRecord();
        }
    }

    [TableName("SiteName")]
    public class SiteNameRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "SiteName"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new SiteNameRecord( );
        }

    }

    [TableName("URI")]
    public class URIRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "URI"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new URIRecord();
        }
    }

    [TableName("Query")]
    public class QueryRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "Query"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new QueryRecord();
        }
    }

    [TableName("Username")]
    public class UsernameRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "Username"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new UsernameRecord();
        }
    }

    [TableName("ProtocolVersion")]
    public class ProtocolVersionRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "ProtocolVersion"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new ProtocolVersionRecord();
        }
    }

    [TableName("Host")]
    public class HostRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "Host"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new HostRecord();
        }
    }

    [TableName("UserAgent")]
    public class UserAgentRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "UserAgent"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new UserAgentRecord();
        }
    }

    [TableName("Cookie")]
    public class CookieRecord : ReferenceRecord
    {
        protected override string TableName
        {
            get { return "Cookie"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new CookieRecord();
        }
    }

    [TableName("Referer")]
    public class RefererRecord : ReferenceRecord
    {        
        protected override string TableName
        {
            get { return "Referer"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new RefererRecord();
        }
    }

    [TableName("IpAddress")]
    public class IpAddressRecord : ReferenceRecord
    {
        
        protected override string TableName
        {
            get { return "IpAddress"; }
        }

        internal override ReferenceRecord Create( )
        {
            return new IpAddressRecord( );
        }
    }
}
